package com.zlf.chain.of.responsibility;

/**
 * 创建不同类型的记录器。 为它们分配错误级别，并在每个记录器中设置下一个记录器。
 * 每个记录器中的下一个记录器表示链的一部分。
 */
public class ChainPatternDemo {

		private static AbstractLogger getChainOfLoggers(){

				AbstractLogger errorLogger = new ErrorLogger(AbstractLogger.ERROR);
				AbstractLogger fileLogger = new FileLogger(AbstractLogger.DEBUG);
				AbstractLogger consoleLogger = new ConsoleLogger(AbstractLogger.INFO);

				errorLogger.setNextLogger(fileLogger);
				fileLogger.setNextLogger(consoleLogger);

				return errorLogger;
		}

		public static void main(String[] args) {
				AbstractLogger loggerChain = getChainOfLoggers();

				loggerChain.logMessage(AbstractLogger.INFO,
								"This is an information.");

				loggerChain.logMessage(AbstractLogger.DEBUG,
								"This is an debug level information.");

				loggerChain.logMessage(AbstractLogger.ERROR,
								"This is an error information.");
		}
}

